package com.web.config;

import com.web.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;

/**
 * @author web
 * @version 1.0
 * @date 2024/04/10 22:19
 */
@Configuration
@ComponentScan({"com.web.controller", "com.web.interceptor"})
@EnableWebMvc
public class SpringMvcConfig implements WebMvcConfigurer {
    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    /*在Java配置中，你可以通过实现WebMvcConfigurer接口并重写configureDefaultServletHandling方法来达到使用tomcat的web.xml中的默认处理静态资源。但是，需要注意的是，从Spring 4.2开始，configureDefaultServletHandling方法已经被弃用，因为SpringMV默认会自动注册一个DefaultServletHttpRequestHandler来处理静态资源（它会对进入DispatcherServlet的请求进行筛选，如果发现没有经过映射的请求，就将该请求交由WEB应用服务器默认的Servlet处理，就是tomcat的web.xml，如果不是静态资源的请求，才由DispatcherServlet处理）， 如果你确实需要禁用这个默认行为，并手动配置默认Servlet处理，你可以使用addResourceHandlers方法来注册自己的资源处理器，并通过setOrder方法来控制其优先级。*/
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/element-ui@2.15.14/**").addResourceLocations("/element-ui@2.15.14/");
//        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
//        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
//        registry.addResourceHandler("/imgs/**").addResourceLocations("/imgs/");
//        registry.addResourceHandler("favicon.ico");
//    }



    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/login", "/register", "/checkCode", "/element-ui@2.15.14/**", "/css/**", "/js/**", "/imgs/**");
    }


}
